1. Field of Invention
The invention relates generally to the field of data storage and, more specifically, to a method and apparatus for improving data transfer performance when storing data on magnetic tape using transaction-based data storage.
2. Description of Related Art
In today's computing world, a common architecture used in a network is a client/server configuration, where the server is responsible for performing actions on behalf of it clients. For example, the server may use this architecture to provide data storage services to its clients for the purpose of backup, archive, or space management of data. The clients send files to the server within the constructs of a transaction of guaranteed safekeeping. A transaction may include a storage phase, a commit phase, and a completion phase. All three steps must be completed successfully for the store operation to be successful.
Moreover, storage devices such as tape drives sometimes store data that it has been asked to write to a tape medium in temporary memory such as a cache. However, the fact that data resides in the cache and may not yet be on the actual storage media is not acceptable because a transaction is not considered to be complete until the corresponding end-user client data stored in a transaction is written to the actual storage location on the tape medium and removed from the intermediate cache. It is vital that all data be placed on the tape medium before a transaction can be committed and completed. This is to prevent loss of client data in the event that an error causes the tape drive to lose any data it may be holding in cache. Accordingly, after receiving all data for a transaction, the server will issue a command to the tape drive to write or “flush” any data that is holding in cache to the tape medium. A flush operation generally involves copying data from a cache to a more permanent storage medium such as disk or tape. Once this is done, the transaction can be committed and completed knowing the data is safely on the tape.
However, flushing the data at the end of each transaction reduces performance. The time to position and to perform the actual write operation to the tape storage device usually incurs significant overhead because of the way the tape storage device accesses and manipulates the tape. The flush operation causes the device to stop streaming data to the tape and may often cause a “back-hitch,” which is a change in direction on the tape, to perform the flush of the data and to track the resulting physical position on the media. So, as the amount of data that clients need to store continues to grow, the flush operation impacts their ability to perform efficient and quick store operations.
One concept that is being considered to address this problem is increasing the amount of data stored in a transaction. While this does reduce the number of flushes that are required, it has an adverse affect of increased data loss if there are errors during the store operation. This also has the negative effect of the client/server application explicitly telling the device to perform the flush, which still incurs a performance penalty. Also, data transfer to the device becomes synchronous as the application must now wait for the flush to complete before another data storage operation can proceed.